home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / Bonus / Plasmatech / ptscp_eval.exe / %MAINDIR% / EvalD6 / PTCompVer.inc < prev    next >
Encoding:
Text File  |  2001-08-31  |  6.3 KB  |  254 lines

  1. { Copyright ⌐ 1997-2001 Plasmatech Software Design. All rights reserved.
  2.  
  3.   File: PTCompVer.inc
  4.   Vers: 6.0
  5.   Date: 28-6-2001
  6.  
  7.   This file defines a set of useful compiler definitions. If you rely on
  8.   the definitions in this file you can just update this one file when
  9.   new versions of Delphi and C++Builder are released.
  10.  
  11.   Include this file at the start of your units with $INCLUDE.
  12.  
  13.   Symbol    Meaning
  14.   ========  ==============
  15.   VER9x     Compiler version is between 90 and 99. Includes Delphi 2 and
  16.             C++Builder 1.
  17.   VER10x    Compiler version is between 100 and 109. Includes Delphi 3.
  18.   VER11x    Compiler version is between 110 and 119. Includes C++Builder 3.
  19.   VER12x    Compiler version is between 120 and 129. Includes Delphi 4 and
  20.               C++Builder 4.
  21.   VER13x    Compiler version is between 130 and 139. Includes Delphi 5 and
  22.               C++Builder 5.
  23.   VER14x    Compiler version is between 140 and 149. Includes Delphi 6 and
  24.               Kylix 1.
  25.  
  26.   DELPHI    Is a Delphi verison of the compiler.
  27.   CBUILDER  Is a C++Builder version of the compiler.
  28.  
  29.   VCL20     VCL version 2.0 (Delphi 2, C++Builder 1).
  30.   VCL30     VCL version 3.0 (Delphi 3.x).
  31.   VCL35     VCL version 3.5 (C++Builder 3).
  32.   VCL40     VCL version 4.0 (Delphi 4.0, C++Builder 4)
  33.   VCL50     VCL version 5.0 (Delphi 5.0, C++Builder 5)
  34.   VCL60     VCL version 6.0 (Delphi 6.0, Kylix 1)
  35.  
  36.   VCL20PLUS VCL version 2.0 or greater.
  37.   VCL30PLUS VCL version 3.0 or greater.
  38.   VCL35PLUS VCL version 3.5 or greater.
  39.   VCL40PLUS VCL version 4.0 or greater.
  40.   VCL50PLUS VCL version 5.0 or greater.
  41.   VCL60PLUS VCL version 6.0 or greater.
  42.  
  43.   CBUILDER1 C++Builder 1.
  44.   CBUILDER3 C++Builder 3.
  45.   CBUILDER4 C++Builder 4.
  46.   CBUILDER5 C++Builder 5.
  47.   DELPHI2   Delphi 2.
  48.   DELPHI3   Delphi 3.
  49.   DELPHI4   Delphi 4.
  50.   DELPHI5   Delphi 5.
  51.   DELPHI6   Delphi 6.
  52.  
  53.   INTERFACES
  54.             True if the compiler understands interfaces. ie. The interface
  55.             keyword, automatic reference counting, GUID semantics etc.
  56.  
  57.   WIDESTRINGS
  58.             True if the WideString type is a heap-allocated, automatically
  59.             freed 2-byte per char string type (like Delphi 3).
  60.  
  61.   RESOURCESTRINGS
  62.             True if the 'resourcestring' keyword has meaning.
  63.  
  64.   OVERLOADING
  65.             True if method overloading is supported.
  66.  
  67.   DEFAULTPARAMS
  68.             True if default parameters are supported.
  69.  
  70.   INT64
  71.             True if Int64 type is available.
  72. }
  73.  
  74. {$DEFINE VER_UNKNOWN}
  75.  
  76. // -- CBuilder 4.0 ----------
  77. {$IFDEF VER125}
  78.   {$UNDEF VER_UNKNOWN}
  79.   {$DEFINE CBUILDER}
  80.   {$DEFINE CBUILDER4}
  81.   {$DEFINE CBUILDER1PLUS}
  82.   {$DEFINE CBUILDER3PLUS}
  83.   {$DEFINE CBUILDER4PLUS}
  84.   {$DEFINE VER12x}
  85.   {$DEFINE INTERFACES}
  86.   {$DEFINE WIDESTRINGS}
  87.   {$DEFINE RESOURCESTRINGS}
  88.   {$DEFINE OVERLOADING}
  89.   {$DEFINE DEFAULTPARAMS}
  90.   {$DEFINE INT64}
  91.   {$DEFINE VCL40}
  92.   {$DEFINE VCL20PLUS}
  93.   {$DEFINE VCL30PLUS}
  94.   {$DEFINE VCL35PLUS}
  95.   {$DEFINE VCL40PLUS}
  96. {$ENDIF}
  97.  
  98. // -- CBuilder 3.0 ----------
  99. {$IFDEF VER110}
  100.   {$UNDEF VER_UNKNOWN}
  101.   {$DEFINE CBUILDER}
  102.   {$DEFINE CBUILDER3}
  103.   {$DEFINE CBUILDER1PLUS}
  104.   {$DEFINE CBUILDER3PLUS}
  105.   {$DEFINE VER11x}
  106.   {$DEFINE INTERFACES}
  107.   {$DEFINE WIDESTRINGS}
  108.   {$DEFINE RESOURCESTRINGS}
  109.   {$DEFINE VCL35}
  110.   {$DEFINE VCL20PLUS}
  111.   {$DEFINE VCL30PLUS}
  112.   {$DEFINE VCL35PLUS}
  113. {$ENDIF}
  114.  
  115. // -- Delphi 3.0 ------------
  116. {$IFDEF VER100}
  117.   {$UNDEF VER_UNKNOWN}
  118.   {$DEFINE DELPHI}
  119.   {$DEFINE DELPHI3}
  120.   {$DEFINE DELPHI2PLUS}
  121.   {$DEFINE DELPHI3PLUS}
  122.   {$DEFINE VER10x}
  123.   {$DEFINE INTERFACES}
  124.   {$DEFINE WIDESTRINGS}
  125.   {$DEFINE RESOURCESTRINGS}
  126.   {$DEFINE VCL30}
  127.   {$DEFINE VCL20PLUS}
  128.   {$DEFINE VCL30PLUS}
  129. {$ENDIF}
  130.  
  131. // -- CBuilder 1.0 ----------
  132. {$IFDEF VER93}
  133.   {$UNDEF VER_UNKNOWN}
  134.   {$DEFINE CBUILDER}
  135.   {$DEFINE CBUILDER1}
  136.   {$DEFINE CBUILDER1PLUS}
  137.   {$DEFINE VER9x}
  138.   {$DEFINE VCL20}
  139.   {$DEFINE VCL20PLUS}
  140. {$ENDIF}
  141.  
  142. // -- Delphi 2.0 ------------
  143. {$IFDEF VER90}
  144.   {$UNDEF VER_UNKNOWN}
  145.   {$DEFINE DELPHI}
  146.   {$DEFINE DELPHI2}
  147.   {$DEFINE DELPHI2PLUS}
  148.   {$DEFINE VER9x}
  149.   {$DEFINE VCL20}
  150.   {$DEFINE VCL20PLUS}
  151. {$ENDIF}
  152.  
  153. // -- Delphi 4.0 ------------
  154. {$IFDEF VER120}
  155.   {$UNDEF VER_UNKNOWN}
  156.   {$DEFINE DELPHI}
  157.   {$DEFINE DELPHI4}
  158.   {$DEFINE DELPHI2PLUS}
  159.   {$DEFINE DELPHI3PLUS}
  160.   {$DEFINE DELPHI4PLUS}
  161.   {$DEFINE VER12x}
  162.   {$DEFINE INTERFACES}
  163.   {$DEFINE WIDESTRINGS}
  164.   {$DEFINE RESOURCESTRINGS}
  165.   {$DEFINE OVERLOADING}
  166.   {$DEFINE DEFAULTPARAMS}
  167.   {$DEFINE INT64}
  168.   {$DEFINE VCL40}
  169.   {$DEFINE VCL20PLUS}
  170.   {$DEFINE VCL30PLUS}
  171.   {$DEFINE VCL35PLUS}
  172.   {$DEFINE VCL40PLUS}
  173. {$ENDIF}
  174.  
  175. // -- Delphi 5.0  and  C++Builder 5.0 ------------
  176. {$IFDEF VER130}
  177.   {$UNDEF VER_UNKNOWN}
  178.   {$DEFINE VER13x}
  179.   {$DEFINE INTERFACES}
  180.   {$DEFINE WIDESTRINGS}
  181.   {$DEFINE RESOURCESTRINGS}
  182.   {$DEFINE OVERLOADING}
  183.   {$DEFINE DEFAULTPARAMS}
  184.   {$DEFINE INT64}
  185.   {$DEFINE VCL50}
  186.   {$DEFINE VCL20PLUS}
  187.   {$DEFINE VCL30PLUS}
  188.   {$DEFINE VCL35PLUS}
  189.   {$DEFINE VCL40PLUS}
  190.   {$DEFINE VCL50PLUS}
  191.   {$IFDEF BCB} // C++Builder 5
  192.     {$DEFINE CBUILDER}
  193.     {$DEFINE CBUILDER5}
  194.     {$DEFINE CBUILDER1PLUS}
  195.     {$DEFINE CBUILDER3PLUS}
  196.     {$DEFINE CBUILDER4PLUS}
  197.     {$DEFINE CBUILDER5PLUS}
  198.   {$ELSE} // must be Delphi 5
  199.     {$DEFINE DELPHI}
  200.     {$DEFINE DELPHI5}
  201.     {$DEFINE DELPHI2PLUS}
  202.     {$DEFINE DELPHI3PLUS}
  203.     {$DEFINE DELPHI4PLUS}
  204.     {$DEFINE DELPHI5PLUS}
  205.   {$ENDIF}
  206. {$ENDIF}
  207.  
  208.  
  209. // -- This little convolution ensures that an unknown
  210. // -- compiler version is assumed to be VER140.
  211. {$IFDEF VER140}
  212.   {$DEFINE USE_VER140}
  213. {$ENDIF}
  214.  
  215. {$IFDEF VER_UNKNOWN}
  216.   {$UNDEF VER_UNKNOWN}
  217.   {$DEFINE USE_VER140}
  218. {$ENDIF}
  219.  
  220. {$IFDEF USE_VER140}
  221.   {$UNDEF USE_VER140}
  222.   {$UNDEF VER_UNKNOWN}
  223.   {$DEFINE VER14x}
  224.   {$DEFINE INTERFACES}
  225.   {$DEFINE WIDESTRINGS}
  226.   {$DEFINE RESOURCESTRINGS}
  227.   {$DEFINE OVERLOADING}
  228.   {$DEFINE DEFAULTPARAMS}
  229.   {$DEFINE INT64}
  230.   {$DEFINE VCL60}
  231.   {$DEFINE VCL20PLUS}
  232.   {$DEFINE VCL30PLUS}
  233.   {$DEFINE VCL35PLUS}
  234.   {$DEFINE VCL40PLUS}
  235.   {$DEFINE VCL50PLUS}
  236.   {$DEFINE VCL60PLUS}
  237.   {$IFDEF WIN32}
  238.     {$IFDEF BCB}
  239.       // assume this is C++Builder 6
  240.     {$ELSE} // must be Delphi 6
  241.       {$DEFINE DELPHI}
  242.       {$DEFINE DELPHI6}
  243.       {$DEFINE DELPHI2PLUS}
  244.       {$DEFINE DELPHI3PLUS}
  245.       {$DEFINE DELPHI4PLUS}
  246.       {$DEFINE DELPHI5PLUS}
  247.       {$DEFINE DELPHI6PLUS}
  248.     {$ENDIF}
  249.   {$ELSE}
  250.     // must a non-windows compiler
  251.   {$ENDIF}
  252. {$ENDIF}
  253.  
  254.